常见运维问题
社区版TDH常见运维问题总结
在使用社区版TDH的时候,常常需要对集群和服务进行管理运维,此过程中会遇到一些问题或者异常情况需要处理。本文整理了一些关于社区版的常见运维问题以及解决办法,在这里分享给各位。这些运维方法同样适用于TDH 5.x版本。
组件配置文件与jar包的位置?
配置文件:/etc/<component>/conf
jar包位置:/usr/lib/<component>
组件的常用日志位置?
/var/log/<component_instance>
其中<component_instance>对应组件实例名称。
如何设定Manager日志文件的大小与数量?
如果/var/log划分的区间过小,日志需要的空间不足,可以根据实际情况调整组件日志的大小以及保存的日志数量。操作步骤如下:
在文件/etc/transwarp-manager/master/log4j.properties中找到下面两项参数:
*.MaxFileSize:用于设置服务的日志文件大小
*.MaxBackupIndex:用于设置服务的日志数量
如果Manager界面出现磁盘剩余不足的告警,应该怎么办?
这说明根目录空间所剩不多。根目录是系统目录,如果空间不足将造成很多问题,所以尽量不要在根目录放置过多文件。一旦出现这种告警,需要及时清理。处理方式如下:
首先进入根目录,执行下面的语句查看占用空间较大的目录:
du -h --max-depth=1|grep G |
判断造成文件异常大的原因,按照不同情况采用不同策略清除文件:
如果/var/log目录大到10g级别,可以删除其中命名带日期的旧日志。
如果/hadoop/data文件夹很大,说明HDFS的文件目录被配到根目录下。这时需要挂载磁盘,将HDFS中的data.dir更改到磁盘目录下。
如果/ngmr目录比较大,说明Inceptor的临时文件没有被及时清理,导致空间被占用,此时可以删除日期比较久远的文件。
对于如安装包之类其他文件,建议删除无用文件,或者移动到其他磁盘。
如何在后台启停服务或者查看服务状态?
下面以Inceptor为例说明。
# 查看Inceptor相关服务角色的状态: kubectl get po -owide | grep inceptor # 停止Inceptor的Metastore角色: kubectl delete -f /var/lib/transwarp-manager/master/content/resources/services/inceptor1/inceptor-metastore.yaml # 启动Inceptor的Metastore角色: kubectl create -f /var/lib/transwarp-manager/master/content/resources/services/inceptor1/inceptor-metastore.yaml # 重启Inceptor的Metastore角色: kubectl delete pod <inceptor_metastore_pod> |
几点说明:
启动和停止只能在Manager所在节点执行。
重启可以在任意节点执行,但如果在非Manager节点上执行需要通过参数-s指定TOS Server。命令如下。
kubectl -s {任意一个tos master的IP}:8080 delete pod <inceptor_metastore_pod>
警报菜单栏中,health_check为什么报错time offset?
集群节点间的时间不同步,请同步节点时间。
如何手动同步节点间的时间?
首先停止集群上运行的所有服务。
然后执行下述命令关闭该节点(需要校对时间的节点)的ntpd服务。
systemctl stop ntpd |
接着同主节点进行时间同步。
ntpdate <NTP Server hostname> |
启动该节点(需要校对时间的节点)的ntpd服务。
systemctl start ntpd |
最后重新启动集群上的所有服务。
无法向磁盘写入数据该怎么办?
首先通过如下命令检查目标磁盘空间:
df -h |
若发现目标磁盘已满,请迁移磁盘。
然后执行下述命令检查磁盘健康状态以及读取速度:
# 检查健康状态 smartctl -H <target_disk> # 检查读取速度 hdparm -Tt <target_disk> |
如上述两项表示磁盘处于非健康状态,请考虑更换磁盘。
如果上面几项没有问题请执行下述命令,检查目标磁盘的inode占用情况:
df -i |
如果发现inode的占用数量饱和,请删除无用的临时文件,释放inode。
当发现日志报错连接被拒绝提示Connection refused,应该怎么处理?
首先检查该节点是否可以ping通其他节点,以及是否可以被其他节点ping通。不通则需要检查网络。
其次检查/etc/hosts文件内容是否正确。
执行下述命令检查防火墙是否关闭:
systemctl status firewalld |
如果发现防火墙处于开启状态,请执行下述语句关闭防火墙:
systemctl stop firewalld systemctl disable firewalld |
在Manager上点击组件的link后,为什么显示无法访问此网站?
请检查网页地址栏出现地址的是否引用了节点的hostname,若是则说明您没有将集群各个节点的ip和对应hostname配置在本地。
请将形如下述的内容配置在hosts文件中,实际内容请根据真实情况填写:
172.16.3.23 tw-node2023 |
Windows的hosts文件通常位于:C:\Windows\system32\drivers\etc\hosts
Linux的hosts文件通常位于:/etc/hosts
Manager无法连接Agent,报错Ask time out on …,应该如何解决?
在Manager节点执行下述命令:
nc -v <agent_hostname> 10208 |
其中<agent_hostname>表示无法连接上的节点的hostname,如果出现no route to host,需要检查Manager节点的/etc/hosts中hostname和ip的关联是否正确,以及是否已关闭节点的防火墙。
接着在Manager节点执行下述命令:
nc -v <agent_ip> 10208 |
其中<agent_ip>表示无法连接的节点的ip,如果出现connection time out,需要检查对应节点的agent是否正常。
然后在Manager节点ping目标节点:
ping <agent_ip> |
可能出现ping不通的情况,需要检查网络问题。
接下来执行下述命令查看防火墙的状态:
systemctl status firewalld |
如果发现防火墙处于打开的状态,请执行下述语句关闭防火墙:
systemctl stop firewalld systemctl disable firewalld |
如果上述步骤执行下来的结果都正常,可能是机器比较慢导致agent无法连接,此时请延长/etc/transwarp-manager/master/application.conf中的超时时间设置remote-start-timeout,将之延长到60s,然后重启Manager。
如果上述步骤都不能解决问题,需要看具体报错解决。
对于已经添加进集群中的节点是否能修改它的主机名?
不能。Hadoop集群中的大部分逻辑都是用主机名/FQDN定位节点的,修改主机名对于Hadoop而言,类似放弃该节点并增加一个新的节点,相当于节点迁移。
提示许可证服务未正常工作,应如何解决?
在Manager页面上点击 管理→许可证 查看许可证服务状态是否正常。如果大于两个节点的License Server宕机,许可证服务将显示为“DOWN”的状态。此时请点击“启动”按钮启动许可证服务。
如何检查许可证过期时间?
点击管理→许可证,可以查看当前License的截止日期。
总结
本文给出的常见问题基本覆盖了告警处理、配置服务、服务起停等常见运维场景。如果读者想了解服务升级的方法,请参考如何在TDH社区版中进行服务升级。
这里略去了一些corner cases,如果读者遇到了这里未提供的情况,欢迎登录星环论坛(http://support.transwarp.cn)进行查询或者提供反馈。
往期原创文章
Guardian 5.0全新架构解析:大数据安全防御之盾(二)
Guardian 5.0全新架构解析:大数据安全防御之盾(一)
大数据开放实验室由星环信息科技(上海)有限公司运营,专门致力于大数据技术的研究和传播。若转载请在文章开头明显注明“文章来源于微信订阅号——大数据开放实验室”,并保留作者和账号介绍。